/*
 * @FileName: [Excelable.java]
 * 
 * @Package com.bcinfo.iccard.model
 * 
 * 
 * Copyright (c) 2011-2015 BCINFO Technology Limited Com.
 * All rights reserved.
 * 
 * This software is the confidential and proprietary
 * information of BCINFO Technology Limited Company
 * ("Confidential Information"). You shall not disclose
 * such Confidential Information and shall use it only
 * in accordance with the terms of the contract agreement
 * you entered into with RKY.
 * 
 * $Rev$
 * $LastChangedDate$
 * $LastChangedBy$
 * 
 * @category ICCARD
 * 
 * @version 1.1
 * 
 * @author $Author$
 * 
 * Change History:[Formatter: author date description] <br/>
 * 1
 * 2
 * 3
 */

package com.bcinfo.iccard.model;

import java.util.List;
import java.util.Map;

/**
 * 支持输出到excel的对象 <br/>
 * <p>
 * For Examples <br/>
 * 
 * <PRE>
 * 代码使用示例
 * </PRE>
 * <p>
 */
public interface Excelable
{

    /**
     * 
     * 写excel的标题行 <br/>
     * <p>
     * Description: <br/>
     * <p>
     * Author: arming<br/>
     * <p>
     * Date: 2013年12月26日-上午10:35:46<br/>
     * <p>
     * 
     * @return
     * 
     */
    public List<String> getTitles();

    /**
     * 
     * 根据标题取属性值 <br/>
     * <p>
     * 对象每个属性值对应于excel一个单元格 <br/>
     * <p>
     * Author: arming<br/>
     * <p>
     * Date: 2013年12月26日-上午10:36:41<br/>
     * <p>
     * 
     * @param title
     * @return
     * 
     */
    public String getValue(String title);

    /**
     * 
     * 重新设置需要导出的列 <br/>
     * <p>
     * 一个对象在不同场景下导出的字段不一样时使用。 <br/>
     * <p>
     * Author: arming<br/>
     * <p>
     * Date: 2013年12月26日-下午2:40:26<br/>
     * <p>
     * 
     * @param hashmap
     * 
     */
    public void resetAlias(Map<String, String> hashmap);
}
